home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
S-Sound and Music
/
(c)s3.d64
/
sound_ring mod.c
(
.txt
)
< prev
Wrap
Commodore BASIC
|
2007-02-04
|
3KB
|
86 lines
10 POKE 53281,0:PRINT""
20 PRINT "[147] [195][207][205][205][207][196][207][210][197] 64 MUSIC SYNTHESIZER"
30 PRINT " FEATURING => RING MODULATION"
100 PRINT" [221] [221] [221] "
110 PRINT" [221] [221] [221] "
120 PRINT" [146]2 [146]3 [221] [146]5 [146]6 [146]7 [221] [146]9 [146]0 [221] [146]- [146]\ "
130 PRINT" [221] [221] [221] [221] [221] [221] [221] [221] [221] [221] [221] [221] "
140 PRINT" [209][221][215][221][197][221][210][221][212][221][217][221][213][221][201][221][207][221][208][221]@[221]*[221]^"
150 PRINT"[211][208][193][195][197] SELECT SOLO OR POLYPHONIC"
160 PRINT"[198]1,[198]3,[198]5,[198]7 SELECT OCTAVE"
170 PRINT"[198]2,[198]4,[198]6,[198]8 SELECT WAVEFORM"
173 PRINT"[216] PLAY A SONG"
175 PRINT", OR . VARY MODULATION"
180 PRINT"HANG ON, SETTING UP FREQUENCY TABLE..."
190 S=13*4096+1024:DIMF(26):DIMK(255)
200 FORI=0TO28:POKES+I,0:NEXT
210 F1=7040:FORI=1TO26:F(27-I)=F1*5.8+30:F1=F1/2^(1/12):NEXT
220 K$="Q2W3ER5T6Y7UI9O0P@-*\^"
230 FORI=1TOLEN(K$):K(ASC(MID$(K$,I)))=I:NEXT
240 PRINT"[145] "
250 AT=0:DE=0:SU=15:RE=10:SR=SU*16+RE:AD=AT*16+DE:WV=16:W=0:M=1:OC=4:HB=256:Z=0
260 MO=30:FORI=0TO2:T=I*7:POKES+5+T,AD:POKES+6+T,SR
270 POKES+2+T,4000AND255:POKES+3+T,4000/256:NEXT
280 POKES+24,15
300 GETA$:IFA$=""THEN300
310 FR=K(ASC(A$)):IFFR=ZTHEN500
315 MF=(F(FR))/M+MO:FR=F(FR)/M:T=V*7:CR=S+T+4
320 POKES+5+T,Z:POKES+6+T,Z
330 POKECR,8:POKECR,Z
340 POKES+T,FR-HB*INT(FR/HB)
350 POKES+1+T,FR/HB
351 POKES+14,MF-HB*INT(MF/HB)
352 POKES+15,MF/HB
360 POKES+5+T,AD:POKES+6+T,SR
370 POKECR,WV+5:FORI=1TO50*AT:NEXT
372 IFPEEK(203)<>64 THEN372
375 POKECR,WV+4
380 IFP=1THENV=V+1:IFV=2THENV=0
400 GOTO300
500 IFA$="[133]"THENM=1:OC=4:GOTO300
510 IFA$="[134]"THENM=2:OC=3:GOTO300
520 IFA$="[135]"THENM=4:OC=2:GOTO300
530 IFA$="[136]"THENM=8:OC=1:GOTO300
540 IFA$="[137]"THENW=0:WV=16:GOTO300
550 IFA$="[138]"THENW=1:WV=32:GOTO300
560 IFA$="[139]"THENW=2:WV=64:GOTO300
570 IFA$="[140]"THENW=3:WV=128:GOTO300
580 IFA$=" "THENP=1-P:GOTO300
585 IFA$="X"THEN10000
586 IFA$="."THENMO=MO+5:GOTO300
587 IFA$=","ANDMOTHENMO=MO-5:GOTO300
590 IFA$="[147]"THEN200
600 GOTO300
800 PRINT"HIT A KEY"
810 GETA$:IFA$=""THEN810:WAIT FOR A KEY
820 PRINTA$:RETURN
9000 DATA40,17,15,17,13,17,12,17,10,17,8,17,6,17,15,13,15,15,13,15,12
9005 DATA15,10,15,8,15,6,15,5,15,13,12,13,13,12,13,10,13,8,13,6,13,5,13,4,13
9006 DATA12,10,12,12
9010 DATA10,12,9,12,7,12,5,12,3,12,1,12
9020 DATA10,8,10,0
9600 DATA40,12,8,10,12,15,13,13,17,15,15,20
9610 DATA19,20,15,12,8,10,12,13,15,17,15,13,12,10,12,8,7,8,10,3
9620 DATA7,10,13,12,10
9630 DATA12,8,10,12,15,13,13,17,15,15,20
9640 DATA19,20,15,12,8,10,12
9650 DATA5,15,13,12,10,8,3,8,7,8,12,15,20,15,12,8
9660 DATA12,15,18,15,12,8,12,15,17,13,10
9670 DATA7,10,13,15,12,8,5,8,12,13,10,7,3,7,10,13,12,10
9680 DATA8,12,15,20,0
9999 DATA-1,-1
10000 READTE
10005 READA:IFA=ZTHEN300
10010 IFA=-1THENRESTORE:GOTO10000
10015 FR=F(A)/M:T=V*7:CR=S+T+4
10020 POKES+5+T,Z:POKES+6+T,Z
10030 POKECR,8:POKECR,Z
10040 POKES+T,FR-HB*INT(FR/HB)
10050 POKES+1+T,FR/HB
10060 POKES+5+T,AD:POKES+6+T,SR
10070 POKECR,WV+1:FORI=1TO50*AT:NEXT
10075 POKECR,WV
10080 IFP=1THENV=V+1:IFV=3THENV=0
10090 FORI=1TOTE:NEXT
10100 GOTO10005